package yaml

import (
	"fmt"
	"os"
	"path/filepath"
)

var conf *config
var configPath string

func GetConf() *config {
	if conf == nil {
		InitConfig("config.yaml")
	}
	return conf
}

func InitConfig(configPath_ string) {
	configPath = configPath_
	conf = newConfig()
	if _, err := os.Stat(configPath); os.IsNotExist(err) {
		err := os.MkdirAll(filepath.Dir(configPath), os.ModePerm)
		if err != nil {
			fmt.Println("创建配置文件路径失败" + err.Error())
			panic(err)
			return
		}
		file, err := os.Create(configPath)
		if err != nil {
			fmt.Println("创建配置文件失败" + err.Error())
			panic(err)
			return
		}
		defer file.Close()
	}
	err := conf.LoadFromFile(configPath)
	if err != nil {
		fmt.Println("初始化配置失败" + err.Error())
		panic(err)
		return
	}
	return
}

func SetDefault(k string, v any) {
	if GetConf() == nil {
		return
	}
	MysqlHost := GetConf().GetString(k)
	if MysqlHost == "" {
		GetConf().Set(k, v)
	}
}
